package com.yatuhashi.manual.mhp3.util;

import android.util.Log;

/**
 * ログクラス
 * @author aoki
 *
 */
public class LogUtil {
    public static enum T{
        E, //ERROR
        W, //WARN
        D, //DEBUG
        I, //INFO
        V, //VERBOSE
    }

    public static void log(T t, String S1, String S2) {
        if(Consts.isDebuggable) {
            switch(t) {
            case E:
                Log.e(S1, S2);
                break;
            case W:
                Log.w(S1, S2);
                break;
            case D:
                Log.d(S1, S2);
                break;
            case I:
                Log.i(S1, S2);
                break;
            case V:
                Log.v(S1, S2);
                break;
            default:
                break;
            }
        }
    }

    public static void log(T t, String S2) {
        if(Consts.isDebuggable) {
            switch(t) {
            case E:
                Log.e(Consts.TAG, S2);
                break;
            case W:
                Log.w(Consts.TAG, S2);
                break;
            case D:
                Log.d(Consts.TAG, S2);
                break;
            case I:
                Log.i(Consts.TAG, S2);
                break;
            case V:
                Log.v(Consts.TAG, S2);
                break;
            default:
                break;
            }
        }
    }
    
    public static void logE(String tag,String S2){
        if(Consts.isDebuggable) {
            Log.e(tag, S2);
        }
    }
    public static void logE(String S2){
        if(Consts.isDebuggable) {
            Log.e(Consts.TAG, S2);
        }
    }
    public static void logW(String S2){
        if(Consts.isDebuggable) {
            Log.w(Consts.TAG, S2);
        }
    }
    public static void logD(String S2){
        if(Consts.isDebuggable) {
            Log.d(Consts.TAG, S2);
        }
    }
    public static void logI(String S2){
        if(Consts.isDebuggable) {
            Log.i(Consts.TAG, S2);
        }
    }
    public static void logV(String S2){
        if(Consts.isDebuggable) {
            Log.v(Consts.TAG, S2);
        }
    }

    public static void log(String S2) {
        if(Consts.isDebuggable) {
            Log.v(Consts.TAG, S2);
        }
    }
    public static void logStack(String TAG, Exception e) {
        if(Consts.isDebuggable) {
            Log.e(TAG, e.toString());
            for (StackTraceElement ste : e.getStackTrace()) {
                Log.e(TAG, "at " + ste.getClassName()
                        + "." + ste.getMethodName()
                        + "(" + ste.getFileName()
                        + ":" + ste.getLineNumber()
                        + ")");
            }
        }
    }
}
